package com.chen.service.Impl;

import com.chen.mapper.EmpLogMapper;
import com.chen.pojo.EmpLog;
import com.chen.service.EmpLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class EmpLogServiceImpl implements EmpLogService {

    @Autowired
    private EmpLogMapper empLogMapper;
    //Propagation的参数说明
    //REQUIRED: 支持当前事务，如果当前没有事务，就新建一个事务。这是最常见的选择。
    //SUPPORTS: 支持当前事务，如果当前没有事务，就以非事务方式执行。
    //MANDATORY: 支持当前事务，如果当前没有事务，就抛出异常。
    //REQUIRES_NEW: 新建事务，如果当前存在事务，把当前事务挂起。
    //NOT_SUPPORTED: 以非事务方式执行操作，如果当前存在事务，就把当前事务挂起。
    //·NEVER: 以非事务方式执行，如果当前存在事务，则抛出异常。
    //NESTED: 如果当前存在事务，则在嵌套事务内执行。如果当前没有事务，则执行与Propagation.REQUIRED类似的操作。‘
    //默认值是REQUIRED。
    //propagetion的作用是控制事务传播行为
    @Transactional(propagation = Propagation.REQUIRES_NEW)//新增日志时，不回滚
    @Override
    public void insertLog(EmpLog empLog) {
        empLogMapper.insert(empLog);
    }

//    @Override
//    public List<EmpLog> list() {
//        List<EmpLog> empLogs = empLogMapper.list();
//        return empLogs;
//    }
}